package com.qf.spring;

import org.springframework.context.support.ClassPathXmlApplicationContext;

//spring的基础使用：spring默认创建对象是单例
public class Demo02 {
    public static void main(String[] args) {
        //获取spring工厂容器，参数为配置文件
        ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-context1.xml");
        //从工厂获取对象,可通过配置文件中的id获取，也可通过对象类型获取
//        Dog dog = (Dog) applicationContext.getBean("dog");
        Dog1 dog1 = applicationContext.getBean(Dog1.class);
        dog1.action();
        //手动关闭工厂容器：只有关闭时对象才会被销毁，不然会一直存在于内存中
            //单例下工厂容器初始化时会执行对象初始化方法，关闭时会执行对象销毁方法
            //而多例下只会执行对象初始化方法，对象销毁方法不会被执行
        applicationContext.close();
    }
}
